//管理用户相关数据
import {defineStore} from 'pinia'
import{useCartStore} from './cartStore.js'
import {loginAPI} from '@/api/user'
import{ref} from 'vue'
import{mergeCartAPI} from '@/api/cart'

export const useUserStore=defineStore('user',()=>{
    const cartStore =useCartStore()
   // 1.定义管理用户数据的state  
    const userInfo=ref({})
   //2.定义获取接口数据的cation函数
const getUserInfo=async({account,password})=>{
 const res=await loginAPI({account,password})
userInfo.value=res.result
//合并购物车的操作(登录之后合并本地)
await mergeCartAPI(cartStore.cartList.map(item=>{
    return{
skuId:item.skuId,
selected:item.selected,
count:item.count
    }
}))
cartStore.updateNewList()
}
//退出登录时实现业务逻辑
// 1清除用户信息，触发cation

const clearUserInfo = () => {
    userInfo.value = {}
    //执行清除购物车的action
    cartStore.clearCart()
  }
   //3。以对象格式把state和action return
   return{
    userInfo,getUserInfo,clearUserInfo
   }
},{
    persist:true
}
)